<!DOCTYPE html>
<!--
  文档类型声明，指定这是一个HTML5文档
  使用Thymeleaf模板引擎，并引入Shiro安全标签
-->
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
    <!--
      引入公共头部文件
      使用Thymeleaf的th:include指令包含名为"include :: header"的片段
      传入参数"部门列表"作为页面标题
    -->
	<th:block th:include="include :: header('部门列表')" />
</head>
<body class="gray-bg">
    <!-- 页面容器 -->
	<div class="container-div">
		<div class="row">
            <!-- 搜索区域 -->
			<div class="col-sm-12 search-collapse">
                <!-- 搜索表单 -->
				<form id="dept-form">
					<div class="select-list">
						<ul>
                            <!-- 部门名称搜索框 -->
							<li>
								部门名称：<input type="text" name="deptName"/>
							</li>
                            <!-- 部门状态下拉选择框 -->
                            <!-- 使用Thymeleaf的th:with指令获取字典类型为'sys_normal_disable'的字典数据 -->
							<li>
								部门状态：<select name="status" th:with="type=${@dict.getType('sys_normal_disable')}">
									<option value="">所有</option>
									<!-- 遍历字典数据，生成下拉选项 -->
									<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
								</select>
							</li>
                            <!-- 搜索和重置按钮 -->
							<li>
								<!-- 搜索按钮，点击触发表格搜索 -->
								<a class="btn btn-primary btn-rounded btn-sm" onclick="$.treeTable.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
								<!-- 重置按钮，点击重置表单 -->
								<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
							</li>
						</ul>
					</div>
				</form>
			</div>

            <!-- 工具栏按钮组 -->
            <!-- 使用Shiro标签进行权限控制 -->
			<div class="btn-group-sm" id="toolbar" role="group">
		        <!-- 新增按钮，需要'system:dept:add'权限 -->
		        <a class="btn btn-success" onclick="$.operate.add(100)" shiro:hasPermission="system:dept:add">
                    <i class="fa fa-plus"></i> 新增
                </a>
                <!-- 修改按钮，需要'system:dept:edit'权限 -->
                <a class="btn btn-primary" onclick="$.operate.edit()" shiro:hasPermission="system:dept:edit">
		            <i class="fa fa-edit"></i> 修改
		        </a>
                <!-- 展开/折叠按钮 -->
                <a class="btn btn-info" id="expandAllBtn">
                    <i class="fa fa-exchange"></i> 展开/折叠
                </a>
	        </div>
            <!-- 表格容器 -->
       		<div class="col-sm-12 select-table table-striped">
	            <!-- 树形表格 -->
	            <table id="bootstrap-tree-table"></table>
	        </div>
	    </div>
	</div>
    <!-- 引入公共底部文件 -->
	<th:block th:include="include :: footer" />
	<script th:inline="javascript">
        // 权限标识
        var addFlag = [[${@permission.hasPermi('system:dept:add')}]];
        var editFlag = [[${@permission.hasPermi('system:dept:edit')}]];
        var removeFlag = [[${@permission.hasPermi('system:dept:remove')}]];
        // 字典数据
        var datas = [[${@dict.getType('sys_normal_disable')}]];
        // 请求前缀
		var prefix = ctx + "system/dept"

        // 页面加载完成后执行
		$(function() {
		    // 表格配置选项
		    var options = {
		        // 表格配置参数
		        code: "deptId",           // 主键字段名
		        parentCode: "parentId",    // 父节点字段名
		        uniqueId: "deptId",        // 唯一标识字段名
		        url: prefix + "/list",     // 数据请求URL
		        createUrl: prefix + "/add/{id}",    // 新增URL
		        updateUrl: prefix + "/edit/{id}",   // 修改URL
		        removeUrl: prefix + "/remove/{id}", // 删除URL
		        modalName: "部门",         // 模态框名称
		        // 表格列定义
		        columns: [{
                    field: 'selectItem',     // 选择项
                    radio: true             // 单选框
                 },
                 {
		            field: 'deptName',       // 部门名称字段
		            title: '部门名称',       // 列标题
		            align: "left"           // 左对齐
		        },
		        {
		            field: 'orderNum',       // 排序字段
		            title: '排序',           // 列标题
		            align: "left"           // 左对齐
		        },
		        {
		            field: 'status',        // 状态字段
		            title: '状态',           // 列标题
		            align: "left",          // 左对齐
		            // 状态格式化函数
		            formatter: function(value, item, index) {
		            	return $.table.selectDictLabel(datas, item.status);
		            }
		        },
		        {
		            field: 'createTime',     // 创建时间字段
		            title: '创建时间',       // 列标题
		            align: "left"           // 左对齐
		        },
		        {
		            title: '操作',           // 操作列标题
		            align: 'left',          // 左对齐
		            // 操作按钮格式化函数
		            formatter: function(value, row, index) {
		                // 如果不是顶级节点，显示操作按钮
		                if (row.parentId != 0) {
		                    var actions = [];
		                    // 编辑按钮
		                    actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.deptId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
		                    // 新增按钮
		                    actions.push('<a class="btn btn-info  btn-xs ' + addFlag + '" href="javascript:void(0)" onclick="$.operate.add(\'' + row.deptId + '\')"><i class="fa fa-plus"></i>新增</a> ');
		                    // 删除按钮
		                    actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.deptId + '\')"><i class="fa fa-trash"></i>删除</a>');
		                    return actions.join('');
		                } else {
		                    return "";
		                }
		            }
		        }]
		    };
		    // 初始化树形表格
		    $.treeTable.init(options);
		});
	</script>
</body>
</html>
